package thread;

/**
 * sleep方法要求我们必须处理中断异常。
 * 当一个线程调用sleep方法处于睡眠阻塞的过程中如果此时该线程的interrupt方法被调用，那么
 * 此时该线程的睡眠阻塞状态会被中断，sleep方法就会抛出中断异常
 */
public class SleepDemo2 {
    public static void main(String[] args) {
        Thread lin = new Thread("林永键"){
            @Override
            public void run() {
                System.out.println(getName()+":刚睡了个美容觉。");
                try {
                    Thread.sleep(500000);
                } catch (InterruptedException e) {
                    System.out.println(getName()+"干嘛呢干嘛呢");
                }
                System.out.println("醒了");

            }
        };

        Thread huang = new Thread("黄大锤"){
            @Override
            public void run() {
                System.out.println(getName()+":大锤80，小锤40，开始砸墙。");
                for(int i = 0;i < 5;i ++){
                    System.out.println(getName()+":80!");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("晃荡");
                System.out.println(getName()+":大哥，搞定；");
                lin.interrupt();//中断lin的线程,阻断睡眠；
            }
        };

        lin.start();
        huang.start();

    }
}
